Program placement method, packet transmission apparatus, and terminal

ABSTRACT

A terminal for uploading a program to a network node is provided. A request message generation unit generates a node information request message and the message is sent to a plurality of nodes on a communication path. Node information response messages are received from the plurality of the nodes and stored in a node information storage. An active node decision unit decides active nodes according to the node information response messages from the nodes and stores a list of the active nodes in an active node list storage. A program upload unit refers to the active node list and performs a process for uploading a predefined program stored in a program storage to each active node.

BACKGROUND OF THE INVENTION

[0001] 1. Field of the Invention

[0002] The present invention relates to an active network technology,and it particularly relates to a method for placing a program in anetwork node, and a packet transmission apparatus and a terminal usingthe method.

[0003] 2. Description of the Related Art

[0004] Since the use of broadband networks has been common among generalusers, network resource consuming services become popular, such aspeer-to-peer real time communication using image and audio, a streamingdistribution using video and so on. As a result, the users' awarenessabout quality of the network services has been raised and the usersbecome very sensitive to quality degradation. Therefore, a guarantee ofQuality of Service (QoS) has been strongly requested for the Internetthat has offered best effort services. Besides personal computers,mobile phones and mobile terminals are commonly used as a new means forutilizing the networks, and therefore it is also necessary that aflexible service should be offered according to the type ofcommunication of the terminals. In such situations, a network node suchas a router, a switch, or the like has been expected not only to performa simple packet transmission process but also to have a kind ofintelligence in consideration of an application layer.

[0005] The terminal to access the networks can easily undergo a modelchange according to various needs of the users or a new networktechnology and the cycle of the model change becomes short. On the otherhand, since guarantee of connectivity and compatibility with the oldmodels are required in the case of a router or a switch andstandardization is necessary for changing the specifications, it takes along time to conform to a new technology. It is difficult to immediatelyconform to the requirements of a great variety of network services. As atechnology by which the functions of the networks can be flexiblychanged, a concept of an active network has been proposed, for instance,in the reference [1]. The active network can flexibly control thebehavior of the network by locating a program in a network node. Sinceby adopting the mechanism of the active network, they can introduce newservice functions into a network system at an early stage withoutspending time and costs for standardization, the industrial world aswell as the academic have expected much of the active network.

[0006] In order to meet the user's request for the quality, the activenetwork places a program for performing a specific process on packets,which are sent and received by the terminal, in a specific network nodeof the active network. The node in which such a specific program isplaced is called an active node. A method by which the number and thelocation of such active nodes are optimized has been proposed. Forinstance, see the reference [2].

[0007] For the effective use of the active network, a problem is whichnetwork node a program is placed in. If the program is placed in a nodewith a heavy processing load, the transmission of the packets is delayedand the service quality could be degraded against the user'sexpectations. In addition, the terminals may access to the network invarious ways and wireless access points as well as wired ones may beused. Therefore, even if a node in the wired network is set as an activenode, the degradation of the service quality might occur at the boundarybetween the wireless and wired networks and the expected effect couldnot be obtained. Thus, in order to determine which node places a programtherein as an active node, network congestion and access environmentmust be considered and it is difficult to determine it uniformly by asimple rule.

Related Art List

[0008] [1] Miki Yamamoto, “A Survey of Active Network Technology”, IEICETransactions on Communications, Vol. J84-B, No.8, pp.1401-1412, August2001.

[0009] [2] JP 2001-249910 A

SUMMARY OF THE INVENTION

[0010] The present invention has been made based on theseconsiderations, and an object thereof is to provide a network technologywhich can determine an appropriate network node to be an active node andplace a program in the active node.

[0011] According to one aspect of the present invention, a terminal isprovided. The terminal comprises a sending unit which sends a requestmessage for node information to a plurality of network nodes on acommunication path; a receiving unit which receives a response messageincluding the node information from each of the network nodes which havereceived the request message; a decision unit which decides on at leastone of the plurality of the network nodes to be an active node accordingto the response message; and an upload unit which uploads to the activenode a program for performing a specific process on packets to be sentor received by the terminal.

[0012] According to another aspect of the present invention, a packettransmission apparatus is provided. The apparatus comprises a decisionunit which decides whether to be an active node for the terminal inreceiving a decision request message for an active node from a terminal;a receiving unit which receives from the terminal a program forperforming a specific process on packets to be sent or received by theterminal when the decision unit decides to be an active node; a storagewhich stores the received program; and an execution unit which executesthe stored program by incorporating the program into a packetprocessing.

[0013] The packet transmission apparatus may be a network node such as arouter, a switch, a wireless access point, or the like, and theapparatus may have an environment for executing a specific packetprocessing according to a program for an active node.

[0014] According to still another aspect of the present invention, aprogram placement method is provided. The method comprises collectingnode information from a plurality of network nodes on a communicationpath of packets to be sent or received by a terminal; deciding on atleast one of the plurality of the network nodes to be an active nodeaccording to the collected node information; and uploading to the activenode a program for performing a specific process on packets to be sentor received by the terminal. The terminal according to theabove-mentioned aspect of the present invention can utilize this method.

[0015] According to still another aspect of the present invention, aprogram placement method is also provided. The method comprisesreceiving requirement information on packet communication of a terminalat a node on a communication path of packets to be sent or received bythe terminal; deciding whether to be an active node for the terminalaccording to the requirement information; and receiving from theterminal a program for performing a specific process on packets to besent or received by the terminal and incorporating the received programinto a packet processing if it is decided to be an active node. Thepacket transmission apparatus according to the above-mentioned aspect ofthe present invention can utilize this method.

[0016] Moreover, any arbitrary replacement or substitution of theabove-described structural components and the steps, expressionsreplaced or substituted in part or whole between a method and anapparatus as well as addition thereof, and expressions changed to asystem, a computer program, a storage medium, a transmission medium orthe like are all effective as and are encompassed by the presentinvention.

[0017] This summary of the invention does not necessarily describe allnecessary features, so that the invention may also be a sub-combinationof these described features.

BRIEF DESCRIPTION OF THE DRAWINGS

[0018]FIG. 1 shows a structure of an active network according to anembodiment.

[0019]FIG. 2 is a block diagram of the terminal of FIG. 1.

[0020]FIG. 3 is a block diagram of the packet transmission apparatus ofFIG. 1.

[0021]FIG. 4 is a flowchart showing a procedure employed by the terminalof FIG. 1 for deciding an active node and uploading a program.

[0022]FIG. 5 is a flowchart showing a procedure by the packettransmission apparatus of FIG. 1 for deciding whether to be an activenode and receiving an uploaded program.

DETAILED DESCRIPTION OF THE INVENTION

[0023] The invention will now be described by reference to the preferredembodiments. This does not intend to limit the scope of the presentinvention, but to exemplify the invention.

[0024]FIG. 1 shows a structure of an active network according to anembodiment. The packet transmission apparatus 12 a to 12 e are providedon the nodes A to E of the active network. The source terminal 10 aconnects with the packet transmission apparatus 12 a on the node A bywireless and exchanges data with the destination terminal 10 b. Thedestination terminal 10 b connects with the packet transmissionapparatus 12 d on the node D by wireless. The packet transmissionapparatus 12 a and 12 d on the nodes A and D are wireless access points,whereas the packet transmission apparatus 12 b, 12 c and 12 e on thenodes B, C and E are routers interconnected via a wired network. Theterminal 10 a and 10 b are, for instance, personal computers, portableelectronic devices such as PDA (Personal Data Assistant), mobile phoneswith data communication function, or the like.

[0025] The source terminal 10 a sends a node information request message14 to the destination terminal 10 b in order to collect network nodeinformation. The node information request message 14 is received in thepacket transmission apparatus 12 a, 12 b, 12 c and 12 d provided on thenodes A, B, C and D on the communication path. The packet transmissionapparatus 12 a, 12 b, 12 c and 12 d, which have received the packetinformation request message 14, send node information response messages16 a, 16 b, 16 c and 16 d respectively back to the source terminal 10 a.

[0026] The source terminal 10 a collects these node information responsemessages, and thereby decides on at least one of the plurality of thenodes A to D on the communication path to be an active node and uploadsa program for performing a specific packet processing to the activenode. If the packet transmission apparatus 12 a on the node A, which isa wireless access point, is determined to be an active node, the packettransmission apparatus 12 a receives a program sent by the terminal 10 aand incorporates the program into the packet processing and thenperforms a priority control or the like on the packets transmittedbetween the source terminal 10 a and the destination terminal 10 b. Thesource terminal 10 a and the destination terminal 10 b are hereinaftersimply called the terminals 10, the packet transmission apparatus 12 ato 12 d on the communication path are called the packet transmissionapparatus 12.

[0027]FIG. 2 is a block diagram of the terminal 10 and FIG. 3 is a blockdiagram of the packet transmission apparatus 12. These structures can berealized by hardware, such as a CPU in arbitrary computers, memory andother LSIs, or by software, such as a program or the like loaded in thememory, which has a packet processing function. In these figures,functions, which are realized by combinations of such hardware andsoftware, are shown by blocks. It should be understood by those skilledin the art that these functional blocks can be realized by various modessuch as hardware only, software only or a combination thereof.

[0028] Referring to the FIG. 2, the structure of the terminal 10 isexplained. The terminal 10 performs one of two modes by switching overthe modes: one mode in which the terminal 10 decides on a network nodeto be an active node and another mode in which the network nodes decidewhether to be an active node. First, the mode in which the terminal 10decides an active node is explained.

[0029] A request message generation unit 28 generates a node informationrequest message 14 and a sender 22 sends it to the packet transmissionapparatus 12. A receiver 20 receives a node information response message16 from the packet transmission apparatus 12 and stores it in a nodeinformation storage 30.

[0030] An active node decision unit 24 decides active nodes according tothe node information response messages 16 of the nodes, which have beencollected and stored in the node information storage 30, and stores alist of the active nodes in an active node list storage 32.

[0031] A program upload unit 26 refers to the active node list stored inthe active node list storage 32 and performs a process for uploading apredefined program stored in a program storage 34 to each active node.The program may be transmitted by FTP (File Transfer Protocol) or thelike by the sender 22 or the program may be incorporated into a part ofpacket to be sent by the terminal 10 and transmitted by the sender 22.

[0032] In the mode in which the network node decides whether to be anactive node, the request message generation unit 28 generates an activenode decision request message 15 and the sender 22 sends it to thepacket transmission apparatus 12. The receiver 20 receives an activenode decision response message 17 from the packet transmission apparatus12 on the node that determines to be an active node, and stores the nodeas one of active nodes in the active node list storage 32. The programupload unit 26 performs the same process as described above.

[0033] Referring to FIG. 3, the structure of the packet transmissionapparatus 12 is explained. A receiver 40 receives a packet from anadjacent node on the communication path. The received packet may includethe node information request message 14, the active node decisionrequest message 15, communication data, program data or the like.

[0034] When the receiver 40 receives the node information requestmessage 14, a response message generation unit 50 generates a nodeinformation response message 16 which contains a node type, a processingload, a processing capacity, a relative location from the terminal orthe like, and a sender 42 sends the node information response message 16as a packet back to the terminal 10.

[0035] When the receiver 40 receives the active node decision requestmessage 15, an active node decision unit 48 decides whether to be anactive node according to the communication requirement informationincluded in the active node decision request message 15, such as aconnection type of the terminal, a desired network quality, a media typeof data to be transmitted or the like. If the node determines to be anactive node, the active node decision unit 48 generates an active nodedecision response message 17 which contains the identificationinformation of the node and the reason the node becomes to be an activenode, and the sender 42 sends the active node decision response message17 as a packet back to the terminal 10.

[0036] When the receiver 40 receives a communication data packet, apacket processing unit 46 performs a protocol-based processing on thepacket, and the sender 42 forwards the processed packet to an adjacentnode. When the receiver 40 receives a communication data packet with aprogram attached, the packet processing unit 46 separates the attachedprogram data from the packet and stores the program data in a programstorage 52, and then performs a protocol-based processing on the packetcontaining communication data only, and the sender 42 forwards theprocessed packet to the adjacent node. When the receiver 40 receives apacket containing a program only, the packet processing unit 46 simplyretrieves the program data from the packet and stores it in the programstorage 52.

[0037] When the node determines to be an active node, a programexecution unit 44 executes the program stored in the program storage 52,and performs a priority control or the like on the packet transmissionprocess by the packet processing unit 46. The program execution unit 44may incorporate the program into a part of the packet processing by thepacket processing unit 46. In a protocol-based processing by the packetprocessing unit 46, the control may be switched over to the programexecution unit 44 and the program may be executed therein. The packet,which the packet processing unit 46 has processed and on which theprogram execution unit 44 has performed the priority control or thelike, is forwarded to the adjacent node by the sender 42.

[0038] The program placement method of the active network by theterminal 10 and the packet transmission apparatus 12 according to theabove-described configuration is now explained.

[0039]FIG. 4 is a flowchart showing a procedure employed by the terminal10 for deciding an active node and uploading a program. The terminal 10sends the node information request message 14 to a plurality of nodes onthe communication path (S10). The terminal 10 receives the nodeinformation response message 16 from the packet transmission apparatus12 on each node that has received the node information request message14 (S12).

[0040] The node information response message 16 includes the nodeinformation, for instance information on a node type such as router,switch, wireless access point or the like, information on a processingload such as the current number of accepted flows or the packetprocessing speed at the node, information on a packet processingcapacity such as hardware performance, the maximum number of acceptableflows, the maximum packet processing speed of the node, or informationon the relative location of the node from the terminal such as a hopcount, IP address or the like.

[0041] The terminal 10 decides on at least one of the plurality of thenodes on the communication path to be an active node according to thenode information that has been collected from these nodes (S14), and theterminal 10 uploads an appropriate program to the active node (S16).

[0042] Some rules for determining the active node are now explained.

[0043] (A) The case in which the terminal 10 is connected to a wirelessaccess point.

[0044] By referring to the collected node information, the terminal 10decides on the node whose node type is a wireless access point to be anactive node. The program for performing an appropriate packet processingdepending on the difference in the bandwidth on wired or wirelesstransmission and the communication quality such as an error rate isuploaded to the active node. For instance, this program performs aprocessing on an application layer, such as content conversion accordingto the transmission bandwidth of the wireless link. The contentconversion is, for instance, to reduce the resolution or the frame rateof an image according to the wireless bandwidth.

[0045] (B) The case in which the terminal 10 sends or receives mediadata such as real-time audio or motion pictures.

[0046] By referring to the collected node information, the terminal 10decides on the node having a heavy processing load to be an active node.Since the node having a heavy processing load is very likely to be abottleneck in transmitting media data, the node is determined to be anactive node and a program for performing a priority control on real-timemedia packets is uploaded to the node and the node executes the program.For instance, the active node performs such a priority control thatpackets whose transmission quality requirement such as delay or delayjitter is strict are first transmitted. All nodes having a largerprocessing load than a predefined threshold may be determined to beactive nodes. Only one node having the largest processing load among thenodes having a larger processing load than a predefined threshold may bedetermined to be an active node.

[0047] (C) The case in which an active node is determined according tothe processing capacity of the nodes.

[0048] By referring to the collected node information, the terminal 10decides on the node with a low processing capacity to be an active node.Since the node with a low processing capacity is likely to be abottleneck in transmitting packets, the node is determined to be anactive node and a program for utilizing the processing capacity isuploaded to the node and the node executes the program. For instance,the node performs a process to reserve network resources for packettransmission for the terminal 10 in advance, or restrict the admissionof flows except for the flow of the terminal 10 by flow admissioncontrol. All nodes having a lower processing capacity than a predefinedthreshold may be determined to be active nodes. Only one node having thelowest processing capacity may be determined to be an active node.

[0049] (D) The case in which an active node is determined according tothe relative location of the nodes.

[0050] By referring to the collected node information, the terminal 10decides on the node with a small hop count from the terminal or close tothe terminal to be an active node. The distance between the node and theterminal may be determined on the basis of the IP address of the node.For instance, the program for performing a priority control on packetssent or received by the terminal is uploaded to the active node and theactive node executes the program.

[0051]FIG. 5 is a flowchart showing a procedure by the packettransmission apparatus 12 for deciding whether to be an active node andreceiving a program uploaded from the terminal 10. The terminal 10 sendsthe active node decision request message 15, which contains packetcommunication requirement information of the terminal 10, to a pluralityof the nodes on the communication path (S20).

[0052] The active node decision request message 15 includes the packetcommunication requirement information, for instance, information on theterminal connection type such as access on a wired network or access viawireless network, information on a desired network quality such as anexpected value for packet loss rate, delay, or jitter of the packets tobe sent or received by the terminal, information on a media type of thedata to be sent or received by the terminal such as text, still image,motion pictures, audio or the like.

[0053] Each of the nodes which have received the active node decisionrequest message 15 decides whether to be an active node for the terminal10 according to the terminal information (S22). If any node decides tobe an active node, the active node sends an active node decisionresponse message 17, which contains the identification information ofthis node and the reason for determining to be an active node, to theterminal 10 (S24). The terminal 10 uploads a program appropriate for thereason for determining to be an active node, which is found in theactive node decision response message 17, to the active node (S26).

[0054] The reason for determining to be an active node is now explained.

[0055] (A) The case in which the connection type of the terminal 10 iswireless.

[0056] When the information on the connection type of the terminal 10,which is included in the active node decision request message 15,indicates wireless, and if the node is the wireless access point thatdirectly communicates with the terminal 10, the node decides to be anactive node. The program for performing an appropriate packet processingdepending on the difference in the bandwidth of wired or wirelesstransmission or the communication quality such as an error rate isuploaded to the active node and the active node executes the program.

[0057] (B) The case in which an active node is determined according to anetwork quality and a media data type.

[0058] By referring to the user's network quality requirement and amedia data type included in the active node decision request message 15,the node decides to be an active node if it is judged that the nodecannot meet the quality requirement of the terminal 10 under the currentpacket processing load, but the node can perform a process to meet thequality requirement when the node becomes an active node. The programfor performing a control to meet the quality requirement of the packetssent or received by the terminal is uploaded to the active node and theactive node executes the program.

[0059] (C) The case in which the communication quality between the nodesis bad and the retransmission of the packets sent or received by theterminal 10 occurs frequently.

[0060] If the node is located at the end of a link with a low level ofcommunication quality because of a high packet loss rate, the nodedecides to be an active node. The program for performing aretransmission control on packets within this link is uploaded to theactive node and the active node executes the program. The nodes at bothends of the link with a bad communication quality may be active nodes oreither of the nodes may be an active node.

[0061] According to the present embodiment, as has been described, theterminal that sends and receives packets collects the information of thenetwork nodes on the packet transmission path and thereby the terminalcan recognize which node is congested with packet flows or which nodebecomes a bottleneck in the packet transmission. The terminal can decideon a node to be an active node according to the node information andplace a program for an active node effectively. The node fortransmitting packets can obtain the requirement information of thecommunication by the terminal and decide on whether to be an active nodeand thereby instruct the terminal to upload the program for the activenode.

[0062] Although the present invention has been described by way ofexemplary embodiments, it should be understood that many changes andsubstitutions may be made by those skilled in the art without departingfrom the scope of the present invention which is defined by the appendedclaims. Some such alterations are stated as follows.

[0063] In the above explanation, the method by which the terminaldetermines an active node and the method by which the node determineswhether to be an active node are described, however, the combination ofthese two methods may be used. Thereby, the program for the active nodecan be placed effectively, according to the situations of both theterminal side and the node side. In the above explanation, a router oran access point for transmitting packets is considered as an activenode, however, a server for offering contents may be an active node.

What is claimed is:
 1. A terminal comprising: a sending unit which sendsa request message for node information to a plurality of network nodeson a communication path; a receiving unit which receives a responsemessage including the node information from each of the network nodeswhich have received the request message; a decision unit which decideson at least one of the plurality of the network nodes to be an activenode according to the response message; and an upload unit which uploadsto the active node a program for performing a specific process onpackets to be sent or received by the terminal.
 2. The terminal of claim1, wherein the receiving unit receives information on a communicationmethod of the node as the response message, and the decision unitdecides on a wireless communication node to be the active node, and theupload unit uploads to the active node a program for performing a packetprocessing to conform to a wireless communication quality.
 3. Theterminal of claim 1, wherein the receiving unit receives information ona processing load of the node as the response message, and the decisionunit decides on a node with a relatively light processing load to be theactive node, and the upload unit uploads to the active node a programfor controlling priority on the packets to be sent or received by theterminal.
 4. The terminal of claim 1, wherein the receiving unitreceives information on a processing load of the node as the responsemessage, and the decision unit decides on a node with a largerprocessing load than a predefined threshold to be the active node, andthe upload unit uploads to the active node a program for performing apriority control on a packet processing according to a transmissionquality requirement.
 5. The terminal of claim 1, wherein the receivingunit receives information on a processing capacity of the node as theresponse message, and the decision unit decides on a node with a smallerprocessing capacity than a predefined threshold to be the active node,and the upload unit uploads to the active node a program for performinga priority control on the packets to be sent or received by theterminal.
 6. The terminal of claim 1, wherein the receiving unitreceives information on a relative location of the node from theterminal as the response message, and the decision unit decides on anode relatively close to the terminal to be the active node, and theupload unit uploads to the active node a program for performing apriority control on the packets to be sent or received by the terminal.7. A packet transmission apparatus comprising: a decision unit whichdecides whether to be an active node for the terminal in receiving adecision request message for an active node from a terminal; a receivingunit which receives from the terminal a program for performing aspecific process on packets to be sent or received by the terminal whenthe decision unit decides to be an active node; a storage which storesthe received program; and an execution unit which executes the storedprogram by incorporating the program into a packet processing.
 8. Theapparatus of claim 7, wherein the decision unit decides to be an activenode if the apparatus is a wireless access point for the terminal, andthe execution unit executes a program for performing a process toconform to a wireless communication quality by incorporating the programinto the packet processing.
 9. The apparatus of claim 7, wherein thedecision unit decides to be an active node if the apparatus can meet anetwork quality requested by the terminal, and the execution unitexecutes a program for performing a priority control on the packets tobe sent or received by the terminal by incorporating the program intothe packet processing.
 10. The apparatus of claim 7, wherein thedecision unit decides to be an active node if the apparatus is at an endof a link with a low level of communication quality, and the executionunit executes a program for performing a retransmission control onpackets on the link by incorporating the program into the packetprocessing.
 11. A program placement method comprising: collecting nodeinformation from a plurality of network nodes on a communication path ofpackets to be sent or received by a terminal; deciding on at least oneof the plurality of the network nodes to be an active node according tothe collected node information; and uploading to the active node aprogram for performing a specific process on packets to be sent orreceived by the terminal.
 12. The method of claim 11, wherein thecollecting collects information on a communication method of the node,and the deciding decides on a wireless communication node to be theactive node, and the uploading uploads to the active node a program forperforming a packet processing to conform to a wireless communicationquality.
 13. The method of claim 11, wherein the collecting collectsinformation on a processing load of the node, and the deciding decideson a node with a relatively light processing load to be the active node,and the uploading uploads to the active node a program for performing apriority control on the packets to be sent or received by the terminal.14. The method of claim 11, wherein the collecting collects informationon a processing load of the node, and the deciding decides on a nodewith a larger processing load than a predefined threshold to be theactive node, and the uploading uploads to the active node a program forperforming a priority control on a packet processing according to atransmission quality requirement.
 15. The method of claim 11, whereinthe collecting collects information on a processing capacity of thenode, and the deciding decides on a node with a smaller processingcapacity than a predefined threshold to be the active node, and theuploading uploads to the active node a program for performing a prioritycontrol on the packets to be sent or received by the terminal.
 16. Theterminal of claim 11, wherein the collecting collects information on arelative location of the node from the terminal, and the decidingdecides on a node relatively close to the terminal to be the activenode, and the uploading uploads to the active node a program forperforming a priority control on the packets to be sent or received bythe terminal.
 17. A program placement method comprising: receivingrequirement information on packet communication of a terminal at a nodeon a communication path of packets to be sent or received by theterminal; deciding whether to be an active node for the terminalaccording to the requirement information; and receiving from theterminal a program for performing a specific process on packets to besent or received by the terminal and incorporating the received programinto a packet processing if it is decided to be an active node.
 18. Themethod of claim 17, wherein the deciding decides to be the active nodeif the node is a wireless access point for the terminal, and theincorporating incorporates a program for performing a process to conformto a wireless communication quality into the packet processing.
 19. Themethod of claim 17, wherein the deciding decides to be the active nodeif the node can meet a network quality requested by the terminal, andthe incorporating incorporates a program for performing a prioritycontrol on the packets to be sent or received by the terminal into thepacket processing.
 20. The apparatus of claim 17, wherein the decidingdecides to be the active node if the node is at an end of a link with alow level of communication quality, and the incorporating incorporates aprogram for performing a retransmission control on packets on the linkinto the packet processing.